/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.sadhar.sipp.perekamananggaranbiayaunitnonrapatkerja;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.sadhar.errhandler.ClassAntiNull;
import org.sadhar.sia.common.ClassConnection;
import org.sadhar.sia.common.ClassUtility;

/**
 * 
 * @author Yohan Hardinugroho
 */
public class PerekamanAnggaranBiayaUnitNonRapatKerjaDAOImpl implements
        PerekamanAnggaranBiayaUnitNonRapatKerjaDAO {

    @Override
    public List<Map> listStatusPengajuan(String tahun, String kodeUnit) {
        // tahun = 2009, kodeUnit=03001040
        String sql = "SELECT a.kodeUnit,a.tahun,a.isRevisi,a.isSudahDiajukan FROM ppmk.anggaranRABNonRapatKerja a where a.tahun=? and a.kodeUnit=?";
        // TODO Auto-generated method stub
        return ClassConnection.getJdbc().queryForList(
                sql,
                new Object[]{ClassUtility.quote(tahun),
                    ClassUtility.quote(kodeUnit)});
    }

    @Override
    public double countStatusPengajuan(String tahun, String kodeUnit) {
        // tahun = 2009, kodeUnit=03001040
        String sql = "SELECT count(*) as countall FROM ppmk.anggaranRABNonRapatKerja a where a.tahun=? and a.kodeUnit=?";
        // TODO Auto-generated method stub
        List<Map> lmap = ClassConnection.getJdbc().queryForList(
                sql,
                new Object[]{ClassUtility.quote(tahun),
                    ClassUtility.quote(kodeUnit)});
        double count = 0;
        for (Map m : lmap) {
            count = ClassAntiNull.AntiNullDouble(m.get("countall"));
        }
        return count;
    }

    public List<Map> listStatusPengajuan2(String tahun, String kodeUnit, String isRevisi, String isSudahDiajukan) {
        // tahun = 2009, kodeUnit=03001040
        String sql = "SELECT a.kodeUnit,a.tahun,a.isRevisi,a.isSudahDiajukan FROM ppmk.anggaranRABNonRapatKerja a where a.tahun=? and a.kodeUnit=? and a.isRevisi=? and a.isSudahDiajukan=?";
        // TODO Auto-generated method stub
        try {
            return ClassConnection.getJdbc().queryForList(
                    sql,
                    new Object[]{ClassUtility.quote(tahun),
                        ClassUtility.quote(kodeUnit), ClassUtility.quote(isRevisi), ClassUtility.quote(isSudahDiajukan)});
        } catch (Exception ex) {
            ex.printStackTrace();
            return new ArrayList();
        }
    }

    public List<Map> listAnggaranBiayaRapatKerja2(String isRapat, String tahun, String kodeUnit, String isRevisi, String isSudahDiajukan) {
        String sql = "select anggaranRapat.tahun, anggaranRapat.isRevisi, anggaranRapat.isSudahDiajukan " + "from ppmk.anggaranBiayaRapatKerjaDanKegiatan as anggaranRapat " + "left join ppmk.rapatKerjaUnit as rapatUnit on (anggaranRapat.kodeRapatKerjaSubKegiatan=rapatUnit.idRapatKerjaUnit)" + " where " + "anggaranRapat.isRapat=? " + "and anggaranRapat.tahun=? " + "and rapatUnit.kodeUnit=? and anggaranRapat.isRevisi=? and  anggaranRapat.isSudahDiajukan=?";
        try {
            return ClassConnection.getJdbc().queryForList(sql, new Object[]{
                        ClassUtility.quote(isRapat),
                        ClassUtility.quote(tahun),
                        ClassUtility.quote(kodeUnit),
                        ClassUtility.quote(isRevisi),
                        ClassUtility.quote(isSudahDiajukan)
                    });
        } catch (Exception ex) {
            ex.printStackTrace();
            return new ArrayList();
        }
    }

    @Override
    public double totalAnggaranNonRapat(String tahun, String kodeUnit,
            String isRevisi, String isSudahDiajukan) {

        String sql = "select sum(arab.harga*arab.kuantitas) as totalAnggaranNonRapat " + "from ppmk.anggaranRABNonRapatKerja arab " + "where arab.tahun=? and arab.kodeUnit=? " + "and arab.isRevisi=? and arab.isSudahDiajukan=?";
        List<Map> lmap = ClassConnection.getJdbc().queryForList(
                sql,
                new Object[]{ClassUtility.quote(tahun),
                    ClassUtility.quote(kodeUnit),
                    ClassUtility.quote(isRevisi),
                    ClassUtility.quote(isSudahDiajukan)});
        double count = 0;
        for (Map m : lmap) {
            count = ClassAntiNull.AntiNullDouble(m.get("totalAnggaranNonRapat"));
        }
        return count;

    }

    public String tahunKelompokAnggaranYangDigunakan(String tahunAnggaran) {
        String sql = "select tahunKelompok from ppmk.kelompokAnggaranYangDigunakan where tahunAnggaran=?";
        List<Map> lmap = ClassConnection.getJdbc().queryForList(
                sql,
                new Object[]{ClassUtility.quote(tahunAnggaran)});

        String tahunKelompok = "";
        for (Map m : lmap) {
            tahunKelompok = ClassAntiNull.AntiNullString(m.get("tahunKelompok"));
        }

        return tahunKelompok;
    }

    public List<Map> listKelompokBiaya(String tahun, String namaPosBiaya) {
        String sql = "select * from ppmk.kelompokBiaya kb inner join ppmk.posBiaya pb on (kb.kodePosBiaya = pb.kodePosBiaya) where kb.tahunKelompok = ? and pb.namaPosBiaya like ? and kb.kodeJenisBiaya='1' and kb.kodePosBiaya!=5";
        List<Map> lmap = ClassConnection.getJdbc().queryForList(
                sql,
                new Object[]{ClassUtility.quote(tahun), ClassUtility.quote("%" + namaPosBiaya + "%")});
        return lmap;
    }

    public List<Map> cekPosBiayaKhususUnit(int kodeKelompokBiaya, String kodeUnitKerja) {
        String sql = "select * from ppmk.posBiayaKhususUnit where kodeKelompokBiaya=? and kodeUnitKerja=?";
        return ClassConnection.getJdbc().queryForList(sql, new Object[]{Integer.valueOf(kodeKelompokBiaya), ClassUtility.quote(kodeUnitKerja)});
    }

    @Override
    public double totalAnggaranRapat(String tahun, String kodeUnit,
            String isRevisi, String isSudahDiajukan) {

        String sql =
                "select if(jumlahHari=0 or jumlahHari=null,sum(harga*kuantitas),sum(harga*kuantitas*jumlahHari)) as totalAnggaranRapat "
                + "from ppmk.anggaranBiayaRapatKerjaDanKegiatan as anggaranRapat "
                + "left join ppmk.rapatKerjaUnit as rapatUnit on anggaranRapat.kodeRapatKerjaSubKegiatan=rapatUnit.idRapatKerjaUnit "
                + "where anggaranRapat.isRapat='Y' "
                + "and anggaranRapat.tahun=? "
                + "and rapatUnit.kodeUnit=? "
                + "and anggaranRapat.isRevisi=? "
                + "and anggaranRapat.isSudahDiajukan=?";

        List<Map> lmap = ClassConnection.getJdbc().queryForList(
                sql,
                new Object[]{ClassUtility.quote(tahun),
                    ClassUtility.quote(kodeUnit),
                    ClassUtility.quote(isRevisi),
                    ClassUtility.quote(isSudahDiajukan)});
        double count = 0;
        for (Map m : lmap) {
            count = ClassAntiNull.AntiNullDouble(m.get("totalAnggaranRapat"));
        }
        // isRevisi = y, isSudahDiajukan = y
        //select sum(harga*kuantitas*jumlahHari) as totalAnggaranRapat from ppmk.anggaranBiayaRapatKerjaDanKegiatan as anggaranRapat left join ppmk.rapatkerjaunit as rapatUnit on anggaranRapat.kodeRapatKerjaSubKegiatan=rapatUnit.idRapatKerjaUnit where isRapat='y' and anggaranRapat.tahun='2009' and rapatUnit.kodeUnit='03001040' and anggaranRapat.isRevisi='y' and anggaranRapat.isSudahDiajukan='y';
        return count;
    }

    public List<Map> listAnggaranBiayaRapatKerja(String isRapat, String tahun, String kodeUnit) {
        String sql = "select anggaranRapat.tahun, anggaranRapat.isRevisi, anggaranRapat.isSudahDiajukan "
                + "from ppmk.anggaranBiayaRapatKerjaDanKegiatan as anggaranRapat "
                + "left join ppmk.rapatKerjaUnit as rapatUnit on (anggaranRapat.kodeRapatKerjaSubKegiatan=rapatUnit.idRapatKerjaUnit)"
                + " where "
                + "anggaranRapat.isRapat=? "
                + "and anggaranRapat.tahun=? "
                + "and rapatUnit.kodeUnit=?";
        return ClassConnection.getJdbc().queryForList(sql, new Object[]{
                    ClassUtility.quote(isRapat),
                    ClassUtility.quote(tahun),
                    ClassUtility.quote(kodeUnit)
                });
    }

    public List<Map> listAnggaranBiayaRapatKerjaForButtonKirim(String isRapat, String tahun, String kodeUnit, String isRevisi, String isSudahDiajukan) {
        String sql = "select anggaranRapat.tahun, anggaranRapat.isRevisi, anggaranRapat.isSudahDiajukan "
                + "from ppmk.anggaranBiayaRapatKerjaDanKegiatan as anggaranRapat "
                + "left join ppmk.rapatKerjaUnit as rapatUnit on (anggaranRapat.kodeRapatKerjaSubKegiatan=rapatUnit.idRapatKerjaUnit)"
                + " where "
                + "anggaranRapat.isRapat=? "
                + "and anggaranRapat.tahun=? "
                + "and rapatUnit.kodeUnit=?"
                + "   and anggaranRapat.isRevisi=? and anggaranRapat.isSudahDiajukan=?";
        return ClassConnection.getJdbc().queryForList(sql, new Object[]{
                    ClassUtility.quote(isRapat),
                    ClassUtility.quote(tahun),
                    ClassUtility.quote(kodeUnit),
                    ClassUtility.quote(isRevisi),
                    ClassUtility.quote(isSudahDiajukan)
                });
    }

    public List<Map> listNamaItemFromItemBiaya(int kodePosBiaya) {
        String sql = "select * from ppmk.itemBiaya where kodePosBiaya =?";
        return ClassConnection.getJdbc().queryForList(sql, new Object[]{Integer.valueOf(kodePosBiaya)});
    }

    public List<Map> listDetailFromItemBiaya(String tahun, int kodeItem) {
        String sql = "select namaItem, satuan, harga "
                + "from ppmk.itemBiaya as item "
                + "left join ppmk.hargaItemBiaya as hi on item.kodeitem = hi.kodeItem "
                + "left join kamus.satuanBarang as sb on item.kodeSatuan=sb.kodeSatuanBarang "
                + "where hi.tahun=? and item.kodeItem=?";
        return ClassConnection.getJdbc().queryForList(sql, new Object[]{ClassUtility.quote(tahun), Integer.valueOf(kodeItem)});

    }

    public List<Map> listDetailBarang(int idJenisBarang, String namaBarang) {
        String sql = "select * from asset.barang as item left join kamus.satuanBarang as sb on item.kodeSatuanBarang=sb.kodeSatuanBarang where item.idJenisBarang = ? and item.namaBarang like ?";
        return ClassConnection.getJdbc().queryForList(sql, new Object[]{Integer.valueOf(idJenisBarang), ClassUtility.quote("%" + namaBarang + "%")});
    }

    public List<Map> listDetailJenisBarang(int kodeklasifikasi, String jenisBarang) {
        String sql = "select * from kamus.jenisBarang where kodeKlasifikasi=? and jenisBarang like ?";
        return ClassConnection.getJdbc().queryForList(sql, new Object[]{Integer.valueOf(kodeklasifikasi), ClassUtility.quote("%" + jenisBarang + "%")});
    }

    public List<Map> listHargaBarang(String tahun, int idBarang) {

        String sql = "select hrg.idHargaBarang, hargaBeliSatuanPerKecil from asset.hargaBarang as hrg inner join ppmk.nilaiPatokanHarga as nilaiHrg on hrg.idHargaBarang = nilaiHrg.idHargaBarang where tahun = ? and hrg.idBarang = ?";
        return ClassConnection.getJdbc().queryForList(sql, new Object[]{ClassUtility.quote(tahun), Integer.valueOf(idBarang)});
    }

    public List<Map> listKendaraanBarangInvenstasi(String searchKey) {
        String sql = "select * from asset.kendaraan as k left join kamus.merkBarangInvestasi merk on merk.kodeMerkBarangInvestasi=k.kodeMerkBarangInvestasi where noSTNK like ? or namaMerkBarangInvestasi like ?";
        return ClassConnection.getJdbc().queryForList(sql, new Object[]{ClassUtility.quote("%" + searchKey + "%"), ClassUtility.quote("%" + searchKey + "%")});
    }

    public void insert(String tahun, String kodeUnit, int kodePosBiaya, int kodeItemBiayaBarang, double harga, int kuantitas, String isRevisi, String isDiajukan, int kodeSubItemBiayaBarang) {
        String sql = "insert into ppmk.anggaranRABNonRapatKerja(tahun,kodeUnit,kodePosBiaya,kodeItemBiayaBarang,harga,kuantitas,isRevisi,isSudahDiajukan,kodeSubItemBiayaBarang) values (?,?,?,?,?,?,?,?,?)";
        List<Object> l = new ArrayList<Object>();
        l.add(tahun);
        l.add(kodeUnit);
        l.add(kodePosBiaya);
        l.add(kodeItemBiayaBarang);
        l.add(harga);
        l.add(kuantitas);
        l.add(isRevisi);
        l.add(isDiajukan);
        if (kodeSubItemBiayaBarang == -1) {
            l.add(null);
        } else {
            l.add(kodeSubItemBiayaBarang);
        }

        ClassConnection.getJdbc().update(sql, l.toArray());
    }

    public int cek(String tahun, String kodeUnit, int kodePosBiaya, int kodeItemBiayaBarang, String isRevisi) {
        String sql = "SELECT * FROM anggaranRABNonRapatKerja a where a.tahun=? and a.kodeUnit=? and a.kodePosBiaya=? and a.kodeItemBiayaBarang=? and a.isRevisi=?";
        List<Object> l = new ArrayList<Object>();
        l.add(tahun);
        l.add(kodeUnit);
        l.add(kodePosBiaya);
        l.add(kodeItemBiayaBarang);
        l.add(isRevisi);

        List<Map> lm = ClassConnection.getJdbc().queryForList(sql, l.toArray());
        return lm.size();
    }

    public void delete(String tahun, String kodeUnit, int kodePosBiaya, int kodeItemBiayaBarang, String isRevisi) {
        String sql = "DELETE FROM  ppmk.anggaranRABNonRapatKerja where  tahun=? and kodeUnit=? and kodePosBiaya=? and kodeItemBiayaBarang=? and isRevisi=?";
        List<Object> l = new ArrayList<Object>();
        l.add(tahun);
        l.add(kodeUnit);
        l.add(kodePosBiaya);
        l.add(kodeItemBiayaBarang);
        l.add(isRevisi);

        ClassConnection.getJdbc().update(sql, l.toArray());
    }

    public int cekKunciAnggaranBiaya(String tahun, String kodeUnit) {
        String sql = "SELECT * FROM ppmk.kunciAnggaranBiaya k where k.tahunAnggaran=? and k.kodeUnit=? and k.kodeJenisAnggaran=? and k.isRevisi=?";
        List<Object> l = new ArrayList<Object>();
        l.add(tahun);
        l.add(kodeUnit);
        l.add("1");
        l.add("N");
        List<Map> lm = ClassConnection.getJdbc().queryForList(sql, l.toArray());
        return lm.size();
    }

    public void insertKunciAnggaranBiaya(String tahun, String kodeUnit) {
        String sql = "insert into ppmk.kunciAnggaranBiaya (tahunAnggaran,kodeUnit,kodeJenisAnggaran,isRevisi,isDikunci) values (?,?,1,'N','Y')";
        List<Object> l = new ArrayList<Object>();
        l.add(tahun);
        l.add(kodeUnit);
        ClassConnection.getJdbc().update(sql, l.toArray());
    }

    public void updateKunciAnggaranBiaya(String tahun, String kodeUnit) {
        String sql = "update ppmk.kunciAnggaranBiaya set isDikunci='Y' where  tahunAnggaran=? and kodeUnit=? and kodeJenisAnggaran=1 and isRevisi='N'";
        List<Object> l = new ArrayList<Object>();
        l.add(tahun);
        l.add(kodeUnit);
        ClassConnection.getJdbc().update(sql, l.toArray());
    }

    public List<Map> listDetailsIfItemBiaya(String tahun, String kodeUnit, int kodePosBiaya) {
        String s = "select namaItem as item,anggaran.tahun,anggaran.kodeUnit,anggaran.kodePosBiaya,anggaran.kodeItemBiayaBarang,anggaran.isRevisi, satuan, anggaran.harga, kuantitas,(anggaran.harga * kuantitas) as jumlah from ppmk. anggaranRABNonRapatKerja as anggaran left join ppmk.itemBiaya as item on anggaran.kodeItemBiayaBarang=item.kodeItem left join kamus.satuanBarang as sb on item.kodeSatuan=sb.kodeSatuanBarang where tahun=? and kodeUnit=? and anggaran.kodePosBiaya= ? and isRevisi='N'";
        return ClassConnection.getJdbc().queryForList(s, new Object[]{
                    ClassUtility.quote(tahun),
                    ClassUtility.quote(kodeUnit),
                    Integer.valueOf(kodePosBiaya)
                });
    }

    public List<Map> listDetailsIfBarang(String tahun, String kodeUnit, int kodePosBiaya) {
        String s = "select barang.namaBarang as item,anggaran.tahun,anggaran.kodeUnit,anggaran.kodePosBiaya,anggaran.kodeItemBiayaBarang,anggaran.isRevisi, satuan, anggaran.harga, kuantitas, (anggaran.harga * kuantitas) as jumlah from ppmk. anggaranRABNonRapatKerja as anggaran left join asset.hargaBarang as item on anggaran.kodeItemBiayaBarang=item.idHargaBarang left join asset.barang as barang on item.idBarang=barang.idBarang left join kamus.satuanBarang as sb on barang.kodeSatuanBarang = sb.kodeSatuanBarang where anggaran.tahun=? and anggaran.kodeUnit=?  and anggaran.kodePosBiaya=?  and isRevisi='N'";
        return ClassConnection.getJdbc().queryForList(s, new Object[]{
                    ClassUtility.quote(tahun),
                    ClassUtility.quote(kodeUnit),
                    Integer.valueOf(kodePosBiaya)
                });
    }

    public List<Map> listDetailsIfItemBiayaRev(String tahun, String kodeUnit, int kodePosBiaya) {
        String s = "select namaItem as item,anggaran.tahun,anggaran.kodeUnit,anggaran.kodePosBiaya,anggaran.kodeItemBiayaBarang,anggaran.isRevisi, satuan, anggaran.harga, kuantitas,(anggaran.harga * kuantitas) as jumlah from ppmk. anggaranRABNonRapatKerja as anggaran left join ppmk.itemBiaya as item on anggaran.kodeItemBiayaBarang=item.kodeItem left join kamus.satuanBarang as sb on item.kodeSatuan=sb.kodeSatuanBarang where tahun=? and kodeUnit=? and anggaran.kodePosBiaya= ? and isRevisi='Y'";
        return ClassConnection.getJdbc().queryForList(s, new Object[]{
                    ClassUtility.quote(tahun),
                    ClassUtility.quote(kodeUnit),
                    Integer.valueOf(kodePosBiaya)
                });
    }

    public List<Map> listDetailsIfBarangRev(String tahun, String kodeUnit, int kodePosBiaya) {
        String s = "select barang.namaBarang as item,anggaran.tahun,anggaran.kodeUnit,anggaran.kodePosBiaya,anggaran.kodeItemBiayaBarang,anggaran.isRevisi, satuan, anggaran.harga, kuantitas, (anggaran.harga * kuantitas) as jumlah  from ppmk. anggaranRABNonRapatKerja as anggaran left join asset.hargaBarang as item on anggaran.kodeItemBiayaBarang=item.idHargaBarang left join asset.barang as barang on item.idBarang=barang.idBarang left join kamus.satuanBarang as sb on barang.kodeSatuanBarang = sb.kodeSatuanBarang where anggaran.tahun=? and anggaran.kodeUnit=?  and anggaran.kodePosBiaya=?  and isRevisi='Y'";
        return ClassConnection.getJdbc().queryForList(s, new Object[]{
                    ClassUtility.quote(tahun),
                    ClassUtility.quote(kodeUnit),
                    Integer.valueOf(kodePosBiaya)
                });
    }

    public List<Map> listDetailsKendaraan(String tahun, String kodeUnit, int kodePosBiaya) {
        String s = "select noSTNK as sub_item,anggaran.tahun,anggaran.kodeUnit,anggaran.kodePosBiaya,anggaran.kodeItemBiayaBarang,anggaran.isRevisi, namaItem as item, satuan, anggaran.harga, kuantitas, (anggaran.harga * kuantitas) as jumlah  from ppmk.anggaranRABNonRapatKerja as anggaran left join ppmk.itemBiaya as item on anggaran.kodeItemBiayaBarang=item.kodeItem left join kamus.satuanBarang as sb on item.kodeSatuan=sb.kodeSatuanBarang left join asset.kendaraan as kendaraan on kendaraan.kodeKendaraan=anggaran.kodeSubItemBiayaBarang where tahun=? and kodeUnit=? and anggaran.kodePosBiaya=?  and isRevisi='N'";
        return ClassConnection.getJdbc().queryForList(s, new Object[]{
                    ClassUtility.quote(tahun),
                    ClassUtility.quote(kodeUnit),
                    Integer.valueOf(kodePosBiaya)
                });
    }

    public List<Map> listDetailsKendaraanRev(String tahun, String kodeUnit, int kodePosBiaya) {
        String s = "select noSTNK as sub_item,anggaran.tahun,anggaran.kodeUnit,anggaran.kodePosBiaya,anggaran.kodeItemBiayaBarang,anggaran.isRevisi, namaItem as item, satuan, anggaran.harga, kuantitas, (anggaran.harga * kuantitas) as jumlah  from ppmk. anggaranRABNonRapatKerja as anggaran left join ppmk.itemBiaya as item on anggaran.kodeItemBiayaBarang=item.kodeItem left join kamus.satuanBarang as sb on item.kodeSatuan=sb.kodeSatuanBarang left join asset.kendaraan as kendaraan on kendaraan.kodeKendaraan=anggaran.kodeSubItemBiayaBarang where tahun=? and kodeUnit=? and anggaran.kodePosBiaya=?  and isRevisi='Y'";
        return ClassConnection.getJdbc().queryForList(s, new Object[]{
                    ClassUtility.quote(tahun),
                    ClassUtility.quote(kodeUnit),
                    Integer.valueOf(kodePosBiaya)
                });
    }

    public void updateIsDiajukan(String tahun, String kodeUnit) {
        String sql = "update ppmk.anggaranRABNonRapatKerja set isSudahDiajukan='Y' where tahun=? and kodeUnit=?";
        ClassConnection.getJdbc().update(sql, new Object[]{
                    ClassUtility.quote(tahun),
                    ClassUtility.quote(kodeUnit)
                });

    }

    public String selectIsDikunci(String tahun, String kodeUnit, String isRevisi) throws Exception {
        String sql = "SELECT DISTINCT(isDikunci) as kunci FROM ppmk.kunciAnggaranBiaya WHERE "
                + "tahunAnggaran=? AND "
                + "kodeUnit=? AND "
                + "kodeJenisAnggaran=1 AND isRevisi=?";
        try {
            String result = "";
            List<Map> lm = ClassConnection.getJdbc().queryForList(sql, new Object[]{
                        tahun, kodeUnit, isRevisi});
            for (Map m : lm) {
                result = ClassAntiNull.AntiNullString(m.get("kunci"));
            }
            return result;
        } catch (Exception ex) {
            ex.printStackTrace();
            return "";
        }
    }

    public boolean isDikunci(String tahun, String kodeUnit, int kodeJenisAnggaran) {
        String sql = "select isDikunci from ppmk.kunciAnggaranBiaya where tahunAnggaran=? and kodeUnit=? and kodeJenisAnggaran=?";
        Object[] params = new Object[]{ClassUtility.quote(tahun), ClassUtility.quote(kodeUnit), Integer.valueOf(kodeJenisAnggaran)};
        List<Map> lm = ClassConnection.getJdbc().queryForList(sql, params);
        if (lm.size() == 0) {
            return false;
        } else {
            boolean dikunci = false;
            for (Map m : lm) {
                String kunc = ClassAntiNull.AntiNullString(m.get("isDikunci"));
                if (kunc.equalsIgnoreCase("Y")) {
                    dikunci = true;
                }
            }
            return dikunci;
        }
    }
    ////untuk poin no 5
    ///select tahunKelompok from ppmk.kelompokAnggaranYangDigunakan where tahunAnggaran='2009';
    /// kueri diatas untuk isi tahun kelompok yang dibawah ini
    //select * from ppmk.kelompokBiaya where tahunKelompok = '2009' and kodeJenisBiaya='1' and kodePosBiaya!=5;
    // nah kueri diatas jika is umum = y maka tampilkan di popup, jadinya ditambahin and isUmum = 'y' menjadi
    ///select * from ppmk.kelompokBiaya where tahunKelompok = '2009' and kodeJenisBiaya='1' and kodePosBiaya!=5 and isUmum='y';
    /// nah kalo isUmum = n maka kemungkinan kueri seperti ini
    //select * from ppmk.posBiayaKhususUnit as pbku inner join ppmk.kelompokBiaya as kb on (pbku.kodeKelompokBiaya=kb.kodeKelompokBiaya) where kb.tahunKelompok = '2009' and kb.kodeJenisBiaya='1' and kb.kodePosBiaya!=5 and kb.isUmum='n' and pbku.kodeUnitKerja='03001040';
    /// point 6
    //select namaTabelItem from ppmk.posbiaya where kodePosBiaya ='2'; 2 sebagai contoh,seharusnya diambil dari posBiaya yang dipilih user
    // nah jika kueri diatas berisi "itemBiaya" maka
    // untuk lingkaran 3
    //select namaItem from ppmk.itemBiaya where kodePosBiaya='2' and namaItem like"%";
    //select namaItem, kodeItem from ppmk.itemBiaya where kodePosBiaya='9' and namaItem like"%";
    //untuk lingkaran 4 menggunakan kodeItem dari kueri diatas
    //select namaItem, satuan, harga from ppmk.itemBiaya as item left join ppmk.hargaItemBiaya as hi on item.kodeitem = hi.kodeItem left join kamus.satuanBarang as sb on item.kodeSatuan=sb.kodeSatuanBarang where hi.tahun='2009' and item.kodeItem='21';
    //jika kueri point 6 berisi "barang" maka
    //- jika kode pos biaya = 1 (ATK) maka
    //select jenisBarang from kamus.jenisBarang where kodeklasifikasi="1" and jenisBarang like"%";
    //- jika kode pos biaya = 3 (bhp) maka
    //select jenisBarang from kamus.jenisBarang where kodeklasifikasi="3" and jenisBarang like"%";
    //- jika kode pos biaya = 4 (rumah tangga) maka
    //select jenisBarang from kamus.jenisBarang where kodeklasifikasi="2" and jenisBarang like"%";
    // untuk lingkaran 3 (contoh idJenisBarang ="2"
    // select namaBarang from asset.barang where idJenisBarang = "2" and namaBarang like "%";
    // untuk lingkaran 4 setelah memilih item biaya
    //select namaBarang,satuan from asset.barang as item left join kamus.satuanBarang as sb on item.kodeSatuanBarang=sb.kodeSatuanBarang where item.idBarang="2";
    // dapat nama barang dan satuan, tetapi ada yang aneh, kodeSatuanBarang di asset.barang adalah varchar(10) sementara di kamus.satuanBarang adalah int(8)
    //untuk harga dapat menggunakan kueri
    //select hrg.idHargaBarang, hargaBeliSatuanPerKecil from asset.hargabarang as hrg inner join ppmk.nilaiPatokanHarga as nilaiHrg on hrg.idHargaBarang = nilaiHrg.idHargaBarang where tahun = "2009" and hrg.idBarang = "2";
    //
    // lingkaran 5
    // cek dulu apakah pos biaya yg dipilih ada isian namaTabelSubItem, contohnya yg ada kodePosBiaya 15 dan 16
    //select namaTabelSubItem from ppmk.posbiaya where kodePosBiaya = "15";
    // kalau ga ada berarti lingkaran 5 di disabel, kalau ada maka
    //select noSTNK, namaMerkBarangInvestasi, type from asset.kendaraan as k left join kamus.merkBarangInvestasi merk on merk.kodeMerkBarangInvestasi=k.kodeMerkBarangInvestasi where noSTNK like "%" or namaMerkBarangInvestasi like "%";
    // data kueri tersebut ditampilkan di PopupKendaraan.zul
    // Form Daftar Biaya
    //no 9.
    //awal
    //if item biaya
    //select namaItem as item, satuan, anggaran.harga, kuantitas from ppmk. anggaranRABNonRapatKerja as anggaran left join ppmk.itemBiaya as item on anggaran.kodeItemBiayaBarang=item.kodeItem left join kamus.satuanBarang as sb on item.kodeSatuan=sb.kodeSatuanBarang where tahun="2009" and kodeUnit="03001040" and anggaran.kodePosBiaya= "2" and isRevisi="N";
    //if barang
    //select barang.namaBarang as item, satuan, anggaran.harga, kuantitas from ppmk. anggaranRABNonRapatKerja as anggaran left join asset.hargaBarang as item on anggaran.kodeItemBiayaBarang=item.idHargaBarang left join asset.barang as barang on item.idBarang=barang.idBarang left join kamus.satuanBarang as sb on barang.kodeSatuanBarang = sb.kodeSatuanBarang where anggaran.tahun="2009" and anggaran.kodeUnit="03001040"  and anggaran.kodePosBiaya="1"  and isRevisi="n";
    //revisi
    //if item biaya
    //select namaItem as item, satuan, anggaran.harga, kuantitas from ppmk. anggaranRABNonRapatKerja as anggaran left join ppmk.itemBiaya as item on anggaran.kodeItemBiayaBarang=item.kodeItem left join kamus.satuanBarang as sb on item.kodeSatuan=sb.kodeSatuanBarang where tahun="2009" and kodeUnit="03001040" and anggaran.kodePosBiaya= "1"  and isRevisi="y";
    //if barang
    //select barang.namaBarang as item, satuan, anggaran.harga, kuantitas from ppmk. anggaranRABNonRapatKerja as anggaran left join asset.hargaBarang as item on anggaran.kodeItemBiayaBarang=item.idHargaBarang left join asset.barang as barang on item.idBarang=barang.idBarang left join kamus.satuanBarang as sb on barang.kodeSatuanBarang = sb.kodeSatuanBarang where anggaran.tahun="2009" and anggaran.kodeUnit="03001040" and anggaran.kodePosBiaya="2" and isRevisi="y";
    //kendaraan awal
    //select noSTNK as sub_item, namaItem as item, satuan, anggaran.harga, kuantitas from ppmk. anggaranRABNonRapatKerja as anggaran left join ppmk.itemBiaya as item on anggaran.kodeItemBiayaBarang=item.kodeItem left join kamus.satuanBarang as sb on item.kodeSatuan=sb.kodeSatuanBarang left join asset.kendaraan as kendaraan on kendaraan.kodeKendaraan=anggaran.kodeSubItemBiayaBarang where tahun="2009" and kodeUnit="03001040" and anggaran.kodePosBiaya="15"  and isRevisi="n";
    //kendaraan revisi
    //select noSTNK as sub_item, namaItem as item, satuan, anggaran.harga, kuantitas from ppmk. anggaranRABNonRapatKerja as anggaran left join ppmk.itemBiaya as item on anggaran.kodeItemBiayaBarang=item.kodeItem left join kamus.satuanBarang as sb on item.kodeSatuan=sb.kodeSatuanBarang left join asset.kendaraan as kendaraan on kendaraan.kodeKendaraan=anggaran.kodeSubItemBiayaBarang where tahun="2009"and kodeUnit="03001040"and anggaran.kodePosBiaya="15" and isRevisi="y";
}

